"""
print("hello world")
# print(aaa) # NameError: name 'aaa' is not defined
print("hello world")

list1 = [10,20,30]
print(list1[100]) # 语法没有错
# IndexError: list index out of range 越界
"""
# 捕捉异常的语法，指定异常类型
"""
try:
    print(aaa) # 常识性的执行这一行代码
except NameError: # 当try语句代码报的错误类型是：NameError
    print("你的代码报错了，兄弟") # 执行这一行代码
"""
# 万能捕捉：所有异常全部捕捉到
"""
try:
    aaa = [10,20,30]
    print(aaa[100])
    # print(bbb)
except Exception: # Exception:这个可以省略，捕捉所有的异常类型
    print("你的代码报错了，兄弟")
"""
# try语句没有报错
"""
try:
    print("侯雯中")
except:
    print("代码报错")
"""
"""
try:
    尝试执行这里的代码
except:
    如果报错了，执行这里的代码
else:
    如果try没错，我这里才会被执行
finally:
    不管错没错，我都执行
"""
"""
try:
    print(list1)
except:
    print("没有这个列表啊，哥们，报错了")
else:
    print("有这个列表，我才会执行")
finally:
    print("不管这个列表是否存在，我都执行")

try:
    print(5)
except:
    print("报错了")
else:
    print("结果输出为5，没有出现异常")
finally:
    print("异常捕捉完毕")
"""
"""
try:
    print(a)
except IndexError: # 异常类型不符合捕捉的
    print("出现了错误")
else:
    print("没有异常")
finally:
    print("异常捕捉完毕")
"""
"""
try:
    L = [1,2]
    L[3]
except NameError as f:
    print("兄弟，你报错了")
    print("报错的内容为：")
    print(f) # NameError: name 'a' is not defined
except IndexError as f:
    print("兄弟，你报错了")
    print(f) # IndexError:list index out of range
else:
    print("代码正确")
finally:
    print("完成了异常捕获")
"""
# 合并异常
"""
try:
    L = [1,2]
    L[3]
except (NameError,IndexError) as f:
    print("报错")
    print(f)
else:
    print("代码正确")
finally:
    print("异常捕捉完毕")
"""

# raise：主动抛出异常，自定义异常
name = input("请输入你的名字")
if name=="侯雯中":
    raise "侯雯中就报错，不解释"

